Expand description
Usage:
fn main() {
puffin::set_scopes_on(true); // you may want to control this with a flag
// game loop
loop {
puffin::GlobalProfiler::lock().new_frame();
{
puffin::profile_scope!("slow_code");
slow_code();
}
}
}
Macros
- Returns a shortened path to the current file.
- Automatically name the profiling scope based on function name.
- Profile the current scope with the given name (unique in the parent scope).
Structs
- One frame worth of profile data, collected from many sources.
- Meta-information about a frame.
- Identifies a specific
FrameSink
when added toGlobalProfiler
. - A view of recent and slowest frames, used by GUIs.
- Automatically connects to
crate::GlobalProfiler
. - Singleton. Collects profiling data from multiple threads and passes them on to different
FrameSink
s. - A scope that has been merged from many different sources
- Created by the
puffin::profile*!(...)
macros. - Parses a
Stream
of profiler data. - Used when parsing a Stream.
- Used when parsing a Stream.
- Stream of profiling events from one thread.
- A
Stream
plus some info about it. - A reference to the contents of a
StreamInfo
. - Used to identify one source of profiling data.
- Collects profiling data for one thread
- One frame worth of profile data, collected from many sources.
Enums
- Errors that can happen when parsing a
Stream
of profile data.
Functions
- Are the profiler scope macros turned on? This is
false
by default. - Report a stream of profile data from a thread to the
GlobalProfiler
singleton. - For the given thread, merge all scopes with the same id+data path.
- Returns a high-precision, monotonically increasing nanosecond count since unix epoch.
- Select the slowest frames, up to a certain count.
- Turn on/off the profiler macros (
profile_function
,profile_scope
etc). When off, these calls take only 1-2 ns to call (100x faster). This isfalse
by default.
Type Aliases
- Add these to
GlobalProfiler
withGlobalProfiler::add_sink()
. - All times are expressed as integer nanoseconds since some event.